package com.dream.keigezhushou.Activity.Uiutils;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import static android.icu.lang.UCharacter.GraphemeClusterBreak.T;

/**
 * Created by Administrator on 2017/3/30.
 */
public class JsonParse {




    /**
     * 解析json字符串
     *
     * @param json  json字符串
     * @param clazz 类类型
     * @param <T>
     * @return 如果解析失败或者state不等于1则返回null
     */
    public static <T> T getFromJson(String json, Class<T> clazz) {
        Gson gson = new Gson();
        T data = null;
        try {
            data = gson.fromJson(json, clazz);
        } catch (Exception ex) {
            ex.printStackTrace();
            data = null;
        }

        return data;
    }








    /**
     * 解析json字符串
     *
     * @param json
     * @param clazz
     * @param <T>
     * @return 类型T的List列表
     */
    /**
     * @param json
     * @param clazz
     * @return
     */
    public static <T> ArrayList<T> jsonToArrayList(String json, Class<T> clazz)
    {
        Type type = new TypeToken<ArrayList<JsonObject>>()
        {}.getType();
        ArrayList<JsonObject> jsonObjects = new Gson().fromJson(json, type);

        ArrayList<T> arrayList = new ArrayList<>();
        for (JsonObject jsonObject : jsonObjects)
        {
            arrayList.add(new Gson().fromJson(jsonObject, clazz));
        }
        return arrayList;
    }
}
